home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Delphi Programmer's Power Pack
/
Delphi Volume 1.iso
/
s_to_z
/
winmac32
/
srmain.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-09-15
|
16KB
|
578 lines
{$I SRCOMOPT.INC}
unit Srmain;
interface
uses Windows, Classes, Graphics, Forms, Controls, WMacro,
StdCtrls, SysUtils, Messages, Dialogs, ComCtrls, Grids;
type
TSuperRecorder = class(TForm)
MacroSet1: TMacroSet;
Label2: TLabel;
gbGlobalSettings: TGroupBox;
SaveBtn: TButton;
LoadBtn: TButton;
Merge: TCheckBox;
RecordKeyMsg: TLabel;
ScrapMacroKeyMsg: TLabel;
CancelKeyMsg: TLabel;
Memo1: TMemo;
PauseKeyMsg: TLabel;
DeleteBtn: TButton;
gbMouseRelevant: TGroupBox;
MousePointer: TRadioButton;
MouseWindow: TRadioButton;
MouseScreen: TRadioButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
btSendKeys: TButton;
edSendKeys: TEdit;
btAppActivate: TButton;
gbToggles: TGroupBox;
CapsLockButton: TButton;
NumlockButton: TButton;
ScrollLockButton: TButton;
edAppActivate: TEdit;
StringGrid1: TStringGrid;
CancelCheck: TCheckBox;
FastPlay: TCheckBox;
SysWide: TCheckBox;
gbMouseMessages: TGroupBox;
MouseNone: TRadioButton;
MouseClicks: TRadioButton;
MouseEverything: TRadioButton;
btApply: TButton;
gbNewMacro: TGroupBox;
MacroKeyComboBox1: TMacroKeyComboBox;
edMacroName: TEdit;
btCreateKeyMacro: TButton;
btCreateCodeMacro: TButton;
Label7: TLabel;
Label8: TLabel;
StatusBar1: TStatusBar;
procedure FastPlayClick(Sender: TObject);
procedure SysWideClick(Sender: TObject);
procedure MouseNoneClick(Sender: TObject);
procedure MouseClicksClick(Sender: TObject);
procedure MouseEverythingClick(Sender: TObject);
procedure btCreateKeyMacroClick(Sender: TObject);
procedure btApplyClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure MacroSet1Played(Sender: TObject; State: TUserMacroEngineState);
procedure SaveBtnClick(Sender: TObject);
procedure LoadBtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btCreateCodeMacroClick(Sender: TObject);
procedure CancelCheckClick(Sender: TObject);
procedure DeleteBtnClick(Sender: TObject);
procedure MousePointerClick(Sender: TObject);
procedure MouseWindowClick(Sender: TObject);
procedure MouseScreenClick(Sender: TObject);
procedure btSendKeysClick(Sender: TObject);
procedure MacroSet1Assigned(Sender: TObject; Macro: Pointer);
procedure btAppActivateClick(Sender: TObject);
procedure CapsLockButtonClick(Sender: TObject);
procedure ScrollLockButtonClick(Sender: TObject);
procedure NumlockButtonClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
SuperRecorder: TSuperRecorder;
OurWindow : HWND;
OldCursor,BIGPOINT : HCursor;
implementation
const
OffOn : array[boolean] of string = ('OFF','ON ');
SlowMouseVDelta = 5;
SlowMouseHDelta = 5;
FastMouseVDelta = 30;
FastMouseHDelta = 30;
{$R *.DFM}
{$R BIGPOINT.RES}
procedure TSuperRecorder.FastPlayClick(Sender: TObject);
begin
MacroSet1.FastPlayback:=FastPlay.Checked;
end;
procedure TSuperRecorder.SysWideClick(Sender: TObject);
begin
MacroSet1.SystemWide:=SysWide.Checked;
end;
procedure TSuperRecorder.MouseNoneClick(Sender: TObject);
begin
If MouseNone.Checked then MacroSet1.RecordMouse:=RMIgnore;
end;
procedure TSuperRecorder.MouseClicksClick(Sender: TObject);
begin
If MouseClicks.Checked then MacroSet1.RecordMouse:=RMClicksAndDrags;
end;
procedure TSuperRecorder.MouseEverythingClick(Sender: TObject);
begin
If MouseEverything.Checked then MacroSet1.RecordMouse:=RMAll;
end;
procedure TSuperRecorder.btCreateKeyMacroClick(Sender: TObject);
begin
try
With MacroSet1, MacroKeyComboBox1 do
If (MKey>0) then Add(MKey,ScrapMacro,edMacroName.Text,nil);
except
on Exception Do MessageBox(0,'An error occurred while adding the key macro','',MB_APPLMODAL);
end;
end;
procedure TSuperRecorder.btApplyClick(Sender: TObject);
begin
With MacroSet1 do begin
If MacrosOn then MacrosOff;
MacrosOn;
end;
MacroSet1Assigned(Sender,nil);
end;
function GetTopLevelWindow(Handle : HWND) : HWND;
begin
while (GetParent(Handle)<>0) do Handle:=GetParent(Handle);
result:=Handle;
end;
procedure ExampleCodeMacroProcedure; export;
begin
MessageBox(0,'Example Code Macro Procedure','',MB_APPLMODAL);
end;
Procedure RunProg(const Prog : Pchar);
begin
WinExec(Prog,SW_SHOWNORMAL);
end;
procedure RunCalc; export;
begin
RunProg('CALC.EXE');
end;
procedure RunNotePad; export;
begin
RunProg('NOTEPAD.EXE');
end;
procedure RunCalendar; export;
begin
RunProg('CALENDAR.EXE');
end;
procedure RunClock; export;
begin
RunProg('CLOCK.EXE');
end;
procedure MoveMouseUp; export;
var
MousePos : TPoint;
begin
GetCursorPos(MousePos);
MousePos.y:=MousePos.y-SlowMouseVDelta;
If (MousePos.y<0) then MousePos.y:=0;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseLeft; export;
var
MousePos : TPoint;
begin
GetCursorPos(MousePos);
MousePos.x:=MousePos.x-SlowMouseHDelta;
If (MousePos.x<0) then MousePos.x:=0;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseRight; export;
var
MousePos : TPoint;
begin
GetCursorPos(MousePos);
MousePos.x:=MousePos.x+SlowMouseHDelta;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseDown; export;
var
MousePos : TPoint;
begin
GetCursorPos(MousePos);
MousePos.y:=MousePos.y+SlowMouseVDelta;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseUpFast; export;
var
MousePos : TPoint;
begin
GetCursorPos(MousePos);
MousePos.y:=MousePos.y-FastMouseVDelta;
If (MousePos.y<0) then MousePos.y:=0;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseLeftFast; export;
var
MousePos : TPoint;
begin
GetCursorPos(MousePos);
MousePos.x:=MousePos.x-FastMouseHDelta;
If (MousePos.x<0) then MousePos.x:=0;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseRightFast; export;
var
MousePos : TPoint;
begin
GetCursorPos(MousePos);
MousePos.x:=MousePos.x+FastMouseHDelta;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseDownFast; export;
var
MousePos : TPoint;
begin
GetCursorPos(MousePos);
MousePos.y:=MousePos.y+FastMouseVDelta;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseUpperLeft; export;
var
MousePos : TPoint;
begin
With MousePos do begin
x:=0;
y:=0;
end;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseUpperRight; export;
var
MousePos : TPoint;
begin
With MousePos do begin
x:=2048;
y:=0;
end;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseLowerLeft; export;
var
MousePos : TPoint;
ScreenHeight : Integer;
begin
ScreenHeight := GetSystemMetrics(SM_CYSCREEN);
With MousePos do begin
x:=0;
y:=ScreenHeight;
end;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseLowerRight; export;
var
MousePos : TPoint;
ScreenWidth, ScreenHeight : Integer;
begin
ScreenWidth := GetSystemMetrics(SM_CXSCREEN);
ScreenHeight := GetSystemMetrics(SM_CYSCREEN);
With MousePos do begin
x:=ScreenWidth;
y:=ScreenHeight;
end;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MoveMouseCenter; export;
var
MousePos : TPoint;
ScreenWidth, ScreenHeight : Integer;
begin
ScreenWidth := GetSystemMetrics(SM_CXSCREEN);
ScreenHeight := GetSystemMetrics(SM_CYSCREEN);
With MousePos do begin
x:=ScreenWidth div 2;
y:=ScreenHeight div 2;
end;
SetCursorPos(MousePos.x,MousePos.y);
end;
procedure MagnifyPointer; export;
var
CurCursor : HCursor;
begin
CurCursor:=GetCursor;
If (CurCursor<>BIGPOINT) then begin
OldCursor:=CurCursor;
SetCursor(BIGPOINT);
end;
end;
procedure ShrinkPointer; export;
var
CurCursor : HCursor;
begin
CurC